package cn.vehicle.mapper;


import cn.vehicle.domains.entity.SysUserEntity;
import org.apache.ibatis.annotations.Param;

public interface SysUserMapper {

    /**
     * 新增用户
     * @param sysUserEntity 用户实体对象
     * @return 影响行数（1：成功，0：失败）
     */
    int insertUser(SysUserEntity sysUserEntity);

    /**
     * 选择性更新用户（仅更新非空字段）
     * @param sysUserEntity 用户实体对象（需包含id）
     * @return 影响行数（1：成功，0：失败或无变更）
     */
    int updateUser(SysUserEntity sysUserEntity);

    /**
     * 根据ID删除用户
     * @param id 用户ID
     * @return 影响行数（1：成功，0：失败）
     */
    int deleteUserById(Long id);

    /**
     * 根据ID查询用户
     * @param id 用户ID
     * @return 用户实体对象（无数据则返回null）
     */
    SysUserEntity selectUserById(Long id);

    /**
     * 根据用户名查询用户（用于登录验证、用户名唯一性校验等）
     * @param username 用户名
     * @return 用户实体对象（无数据则返回null）
     */
    SysUserEntity selectUserByUsername(String username);
}